1. Field of the Invention
Embodiments of the invention generally relate to processing information input by users thereof into data processing environments. More particularly, the invention relates to a method of displaying and defining variables included in the user's input.
2. Description of the Related Art
Generally, many conventional software programs such as spreadsheet software, mathematical software programs, word processors, hypertext markup language (HTML) editors, and enterprise software such as customer relationship management (CRM) programs, etc., receive user input such as functions, mathematical expressions, data, character strings, variables, etc., for processing. Other software programs often use an Integrated Development Environment (IDE) to assist computer users and programmers in writing computer programs and develop software applications in the form of source code. The source code is conventionally written in a high-level programming language, e.g., C++, Java, Pascal, etc.
Many software programs and IDE environments allow the user to create functions. For example, spreadsheet programs allow a user to enter functions directly into cells of the spreadsheet. Many software programs such as the mathematical computer aided design program allow the user to enter functions directly into a textual entry area of a graphical user interface (GUI). For many mathematical software programs that can compile and process the user's mathematical function, the mathematical software program monitors and associates what is being entered to stored information. For example, if a user enters an operator “+”, the mathematical software program understands from the context that the entry is a mathematical operator. Once the mathematical function is entered, and is contextually understood by the mathematical software program, the user may then instruct the mathematical software program to process the function.
Other conventional software programs and devices such as calculators allow the user to develop mathematical functions piece-by-piece using buttons, menus, and data fields that have fixed context, e.g., fixed meanings. For example, when a user uses a button to enter a variable portion of a mathematical function, because a particular button was used that has a fixed meaning of “variable”, the program understands that the entry is a variable. Unfortunately, using buttons, menus, and data fields to generate a mathematical function one piece at a time is often found to be tedious and inefficient.
Generally, such software programs and IDE environments include error detection routines to detect errors with the information received. The programs and IDE environments often generate error messages in response to erroneous and/or unrecognized input by a user and detected by the error detection routines. The error messages are designed to prompt the user to take some action in order to clear the errors. Such error detection routines may operate automatically, and/or may be initiated by the user.
Software programs and IDE environments are often configured with user interfaces and dialog boxes that allow the user to correct errors and/or may offer alternatives to erroneous input. For example, information entered into a cell of many spreadsheet programs may automatically elicit an error message on the spreadsheet display if the spreadsheet program does not recognize the information. If the information was erroneous, the user may elect to correct the erroneous input to clear the error. In some cases where the input is a formula that the spreadsheet program partial understands, it may offer a suggestion to correct the formula. Often a user may input information that is not erroneous but requires additional input. For example, the user may enter a function that includes a variable. Generally, the software program may not understand the function until the variable is defined by associating the variable with some information. Unfortunately, for user input information not understood by the software program, the user generally must ignore and/or cancel the error message, until the additional information is provided. For example, a word processor may provide the user with an error message that includes alternatives for unknown words and/or grammatical errors detected during a grammar/spell checking process. The error message often remains until the user selects a suggested correction, adds the correction, and/or inputs an alternate correction to the word processing program. In another example, an HTML editor may highlight an unknown HTML tag. The HTML editor often keeps the tags highlighted until the user clears the HTML error by correcting the tag. Therefore, such error detection is generally related to correcting a user's input to correct erroneous input until the program recognizes the information.
During mathematical function development, a user may desire to enter user developed elements of the functions directly into the software program that are not recognized by the software program until the mathematical function is further developed and/or further input is introduced by the user to the satisfaction of the software program error correction routines. Unfortunately, as described above, the user is often frustrated, as programs and IDE environments generally do not distinguish between erroneous user input and unrecognized user input that requires further development and/or input. To avoid the error messages, the user is generally forced to either modify their input to what the program understands and/or ignore the error messages. Further, the user may find it difficult, complicated, and time consuming to modify the context of the user developed elements and other elements of the function using software programs that rely on individual buttons, menus, and data fields with fixed meanings.
Therefore, there is a need for a system that allows a user to develop functions in an uncomplicated and efficient manner. There is also a need for the system to allow the user to simply and easily apply and/or modify meanings to portions of the functions being developed.